package UserInterfase;

/** The interface from which all IvoCheckers user interfaces must implement.
 */
public interface UserInterface {
	
	// User interface scope methods.
	/** Initialize the UI's components. */
	public void initUI();
	
	/** Displays the finished GUI. */
	public void displayUI();
	
	/** The event of exiting from the UI. */
	public void exitUI();
	
	// Game board scope methods.
	/** Clears the board of all pieces. */
	public void clearBoard();
	
	/** Places the checker pieces in their appropriate locations.  Done when a 
	 * game is started or loaded from memory.  
	 * 
	 * Requires: clearBoard() to be executed first.
	 */
	public void placePieces();	
	
	/** Occurs when a single piece's position is changed.
	 * This occurs at the end of a move.
	 */
	public void movePiece();
	
	/** Ends the current game.
	 */
	public void endGame();
}
